package com.server.abstractPackage;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.VisitorRegisterManage.pojo.Users;
import com.VisitorRegisterManage.pojo.Visitors;
import com.service.buloInterface.AllServiceInterface;

/** 
 * 更新的 抽象类
* @author Sunyelw yellowsunsna@foxmail.com 
* @version 创建时间：2018年1月10日 下午9:16:04 
* 类说明
* 
* 提示: 当测试时, 请在接口名上用 @RequestMapping("/update"), 不要用POST方法进行测试, 避免一些不必要的bug.
*/

@RequestMapping("/update")
public abstract class UpdateControllerAbstract {

	@Autowired
	private AllServiceInterface allService; // 私有化Service层接口实现类的注入
	
	/**
	 * 提供protected权限的getter方法
	 * @version v1.0.0
	 * @author Sunyelw
	 * @version 创建时间：2018年1月11日 下午12:55:20 
	 * @return
	 * @return 受影响的行数
	 */
	protected AllServiceInterface getService(){
		return allService;
	}	
	
	@RequestMapping("/test.do")
	@ResponseBody
	public abstract String updateTest(@RequestBody Visitors visitor);
	
	/**
	 * 更新来访者信息  角色: SuperAdmin | 主管 | 咨询师
	 * @version v1.0.0
	 * @author Sunyelw
	 * @version 创建时间：2018年1月11日 下午12:56:38 
	 * @param visitor
	 * @return
	 * @return 受影响的行数
	 */
	@RequestMapping(value="/visitor/update.do")
	@ResponseBody
	public abstract String updateVisitor(@RequestBody Visitors visitor);
	
	/**
	 * 更新咨询师信息  角色: SuperAdmin | 主管 | 咨询师  ( SuperAdmin | 主管 主要 重置 咨询师密码)
	 * @version v1.0.0
	 * @author Sunyelw
	 * @version 创建时间：2018年1月11日 下午12:59:35 
	 * @param user
	 * @return
	 * @return 受影响的行数
	 */
	@RequestMapping("/consultant/update.do")
	@ResponseBody
	public abstract String updateConsultant(@RequestBody Users user); 
	
	/**
	 * 更新主管信息  角色  :  SuperAdmin | 主管 (SuperAdmin 主要 重置 主管密码)
	 * @version v1.0.0
	 * @author Sunyelw
	 * @version 创建时间：2018年1月11日 下午1:01:04 
	 * @param user
	 * @return
	 * @return 受影响的行数
	 */
	@RequestMapping("/director/update.do")
	@ResponseBody
	public abstract String updateDirector(@RequestBody Users user);
}
